From: cl349@firebug.cl.cam.ac.uk Date: Thu, 4 May 2006 09:25:27 +0000 (+0100) Subject: Fix xenbus userspace device transaction tracking. X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~16108^2~22^2~4 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/success//%22http:/www.example.com/cgi/success/?a=commitdiff_plain;h=79d14c1747913fd6bbe5de7ae5dfa21902fd7fcc;p=xen.git Fix xenbus userspace device transaction tracking. If a transaction end command fails, the semaphore which keeps track of whether we're in a transaction or not was not getting updated. Signed-off-by: Christian Limpach --- diff --git a/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_xs.c b/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_xs.c index 2cb2e97a87..efafafdcb6 100644 --- a/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_xs.c +++ b/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_xs.c @@ -183,7 +183,7 @@ void *xenbus_dev_request_and_reply(struct xsd_sockmsg *msg) mutex_unlock(&xs_state.request_mutex); - if ((msg->type == XS_TRANSACTION_END) || + if ((req_msg.type == XS_TRANSACTION_END) || ((req_msg.type == XS_TRANSACTION_START) && (msg->type == XS_ERROR))) up_read(&xs_state.suspend_mutex);